Recently, for a work under a severe environment in which an access of a person is difficult, a need for a remote monitoring control system which acquires image information or sound information of a remote place, so as to control devices in the field is increased. At this time, for example, it is considered that a wide area network (WAN) such as the Internet, which has been developed as a communication infrastructure is used for a communication with a medium in a remote place.
Currently, the Transmission Control Protocol (TCP) and the User Datagram Protocol (UDP) are used as the main communication protocols used for communication through the WAN. The TCP guarantees an order of a data sequence and retransmits missed data, and thus realizes communication having high reliability, when data is transmitted from a certain terminal to another terminal. The UDP which is a communication protocol focusing on low delay of communication in comparison to the reliability is used in an application which does not need a service having high reliability. In the UDP, retransmission is not performed, and the order of a data sequence is not guaranteed. However, the UDP allows transmission having low delay at a high speed.
The Real-time Transport Protocol (RTP) is provided as a protocol for distributing stream data of an image, sound, and the like in real time. In a scheme in which the RTP is standardized as a protocol for transmitting a real-time stream, time information is added to packet data to be transmitted, and thus a time relationship between pieces of data on a reception terminal side can be understood. Data of an image or sound can be reproduced even though a portion of the data is lost. Thus, on the reception side, a lost packet or a packet of which arrival is delayed can be ignored, and data can be reproduced by using only packets which have been arrived at a time expected by the reception side. The RTP can be combined with any of the TCP and the UDP. However, because guarantee of an order of a data sequence is performed by retransmission in the TCP, combination of the RTP with the UDP is used in most cases.
However, there are problems in that avoiding loss of a data packet (packet loss), which occurs when the packet passes via a network is not possible in only the RTP, and particularly, reproducing high-quality stream data is not possible under an environment in which communication quality of a line is relatively bad.
As a technique for improving reliability of data transmission, a method in which a forward error correction (FEC) code is assigned to data to be sent, and the data having the assigned FEC code is transmitted is proposed. The FEC code is assigned and is transmitted, and thus a lost data packet can be restored independently on the reception side. Accordingly, it is possible to realize communication having high reliability with low delay, even in a case where communication quality of a line is relatively bad. In the FEC method in packet transmission, the error correction code is computed in a unit of plural pieces of packets. A parity code, the Reed-Solomon code, and the like are used as the FEC code.
Generally, the FEC packet is transmitted with data, as an Internet Protocol (IP) packet. In the general wide area network such as the Internet, in addition to a packet transmitted by a terminal, a packet of another terminal is transmitted on the same channel. Thus, when a ratio of the total quantity of data and a FEC packet to the total quantity of a data packet is set as redundancy, if the redundancy is set to be too high in an environment in which the maximum transmission rate is limited, the total quantity of data exceeds capacity of a channel, and thus congestion occurs. In a case where the congestion occurs, burst loss in which packets are continuously missed may occur. In a case where data is restored by FEC even though the congestion occurs, it is not possible that a terminal at the end detects an occurrence of the congestion. Thus, it is not possible that the terminal performs adequate measures.